查看原文
其他

Google I/O 2019: 助力开发者在 Android 和 Play 平台上打造最佳体验

Google 谷歌开发者 2019-11-01

作者: Chet Haase


京时间 5 月 8 日 01:00am 起,2019 Google I/O 大会通过多种方式与全世界的 Android 开发者互动。相信 Shoreline Amphitheatre 露天剧场的 7,200 位现场嘉宾、收看大会直播的线上观众以及参与 GDG 社区 I/O 延展活动 的开发者都已经了解到我们为让开发者更轻松地工作所做的努力。在 Google I/O 大会上,我们探讨了两大主题: 提升开发者的工作效率,以及在平台中加强对用户隐私和安全的保护。我们来详细了解一下 I/O 大会目前已经爆出的与开发者相关的重磅新闻:



开发者的工作效率


今年,我们专注于一个简单的想法,即我们想为您节省每天的工作时间。而实现这一目标的方法,就是改进您使用的每一项工具。



Kotlin


两年前,我们宣布 Android 平台正式支持 Kotlin 语言。彼时我们的顶级开发者就已经对 Kotlin 爱不释手,自那时起,其发展速度一直令人欣喜。现在有超过 50% 的专业开发者使用 Kotlin。近两年,Kotlin 已跻身 Stack Overflow 上最受喜爱的语言,也是 GitHub 上贡献者数量增长最快的语言之一。 


现在,我们要宣布另一项重大举措: Android 开发将越来越向 Kotlin 倾斜。许多新增的 Jetpack API 和功能也将优先提供 Kotlin 版本。如果您正要启动一个新项目,则应该使用 Kotlin 编写,使用 Kotlin 编写程序意味着更少的代码。即,需要输入、测试和维护的代码数量更少。此外,在与 Jetbrains 和 Kotlin 基金会的合作期间,我们将在工具、文档、培训和活动方面持续投资,使 Kotlin 更加易学易用。其中就包括 Kotlin/Everywhere。这是一项新推出的全球系列活动,参与者可以详细了解这门语言、新的 Udacity 课程等。


  • Kotlin

    https://developer.android.google.cn/kotlin/

  • Kotlin/Everywhere

    https://events.withgoogle.com/kotlin-everywhere/

  • Udacity

    https://cn.udacity.com/course/developing-android-apps-with-kotlin--ud9012



Android Jetpack


去年,我们曾推出 Android 的 API Android Jetpack,旨在提升 Android 开发的速度,并让开发者能够使用更少的代码,更轻松地编写出高质量的应用。随着我们继续简化更多开发者日常面临的挑战,在我们前 1000 名的应用中,超过 80% 的应用已经在使用 Jetpack。本次,我们要发布 6 个全新 Jetpack 库 (alpha 版),并将 5 个库的质量提升至测试版水平。以下是 3 个亮点:


CameraX

各位开发者曾告诉我们很难在各种不同的 Android 设备上高效工作。CameraX 是一个全新 Android Jetpack 开源库,可以降低相机应用开发的难度,提升开发速度。此开源库可以在不同设备上提供始终如一的相机体验,使您不再需要维护设备的具体配置。您可以在参与项目的制造商设备上找到对尖端软硬件功能 (例如光学变焦、背景虚化、HDR,以及夜间模式) 的支持。CameraX 适用于近 90% 的设备,并向后兼容 Android L。此外,CameraX 还有一个简单的迁移路径,方便用户从旧版相机 API 迁移,并且还可以与 camera2 API 无缝对接。Android 设备上 70% 的相机使用量来自安装的应用,而非设备内置的相机应用,因此我们非常高兴能够降低相机应用的开发难度。


架构组件 

我们根据各位开发者的反馈做出一些补充和改进。开发者们曾告诉我们在 Android 平台上实现并发非常困难。因此,我们将为您带来含有协程的 LiveData 和 Lifecycles,以支持常见的一次性异步操作。使用带有 SavedState 模块的 ViewModel,您可以消除样本代码,并通过简单的 API 获得使用 ViewModel 和 SavedState 的双重益处,进而直接从您的 ViewModel 中保存和检索数据。如果错过这一版也没有关系,我们在几个月前刚刚发布了 WorkManager (后台处理) 和 Navigation (在应用屏幕间导航) 的稳定版。


Jetpack Compose

有许多开发者一直敦促我们提供适用于 Android 平台的现代反应式风格界面工具包,并且可以利用 Kotlin,并能够与平台,以及现有的全部代码无缝集成。我们要介绍该项目团队在 Jetpack Compose 方面所作的工作。Jetpack Compose 旨在将反应式编程模型与 Kotlin 的简洁性和易用性相结合,从而简化界面开发。Jetpack Compose 与现有的界面工具包兼容,因此您可以通过直接访问所有 Android 和 Jetpack API 来混合和匹配视图。此外,工具包还对定义界面组件具有完全声明性。而且,此工具包的设计从一开始便已考虑到材料、动画和工具。从今日起,我们将以公开形式开发此工具包,您可以在 AOSP 上找到所有代码。


  • Android Jetpack

    https://developer.android.google.cn/jetpack

  • CameraX

    https://developer.android.google.cn/training/camerax

  • 带有 SavedState 模块的 ViewModel

    https://developer.android.google.cn/topic/libraries/architecture/viewmodel-savedstate

  • WorkManager

    https://android-developers.googleblog.com/2019/03/android-jetpack-workmanager-stable.html

  • Navigation

    https://android-developers.googleblog.com/2019/03/android-jetpack-navigation-stable.html



Android Studio


本次大会上,我们发布了 Android Studio 3.5 测试版。几个月来,该项目团队与 Project Marble 团队合作,专注于优化和改进日常开发流程。Android Studio 3.5 涵盖针对大型项目的更优 IDE 内存管理、更低的输入延迟、Lint 改进、CPU 使用优化、布局编辑器改进模拟器改进版本号变更,以及对 Instant Run 的完全重写。Instant Run 现称为 Apply Changes,能够可靠地提升在设备上查看代码更改的能力,还能对 400 多种高优先级的漏洞予以修复。


  • Android Studio 3.5

    https://developer.android.google.cn/studio/preview

  • Lint 改进

    https://medium.com/androiddevelopers/android-studio-project-marble-lint-performance-8baedbff2521

  • 布局编辑器改进

    https://medium.com/androiddevelopers/android-studio-project-marble-layout-editor-608b6704957a

  • 模拟器改进

    https://medium.com/androiddevelopers/android-emulator-project-marble-improvements-1175a934941e

  • 版本号变更

    https://medium.com/androiddevelopers/improving-build-speed-in-android-studio-3e1425274837

  • Apply Changes

    https://medium.com/androiddevelopers/android-studio-project-marble-apply-changes-e3048662e8cd



Android 规模的机器学习


在 Android Q 中,我们已对 Android 神经网络 API (NNAPI) 做出重大改进。首先,我们将支持的运算符数量从 38 增加到 90。现在,NNAPI 无需更改即可加速绝大多数模型。我们还为高级用户引入自检 API,以帮助他们完全控制负责加速的硬件 (例如,DSP 与 NPU)。此外,我们还与硬件供应商紧密合作,以显著提升性能 (降低延迟时间和能耗)。通过与 MediaTek 合作,我们能够在 Helio P90 上将 ML Kit 人脸检测 API 的运行速度提升 9 倍。与 Qualcomm 的合作使我们能够提升 Google Lens OCR 在 Snapdragon 855 AI Engine 上的运行速度,并在提速 3 倍的同时将能耗降低 370%。


  • ML Kit

    https://developers.google.cn/ml-kit/



动态功能和应用内更新


去年,我们曾推出能够帮助您缩减应用大小并增加安装量的 Android App Bundle。自那时起,我们已经看到 80,000 多个应用软件包进入生产状态,而应用大小则平均缩减 20%。本次大会我们要发布许多内容,以帮助您缩减应用大小,并进一步提升向用户发布更新的速度。我们非常高兴地介绍正在从测试版过渡到稳定版的动态功能模块。借助动态功能模块,您可以根据设备功能、国家/地区等条件选择应用要提供的功能,从而进一步缩减应用大小。您甚至可以按需提供模块,而不用在安装时统一添加。今天,我们还要将应用内更新功能从测试版转为稳定版。这种动态更新应用的能力正是您长久以来希望获得的功能。假设您的应用中存在一个严重漏洞,您需要立刻消除,而且不希望等到用户在 Play Store 发现应用更新时才能消除。现在您就可以即刻消除漏洞。


  • Android App Bundle

    https://developer.android.google.cn/platform/technology/app-bundle

  • 动态功能模块

    https://developer.android.google.cn/guide/app-bundle/playcore

  • 应用内更新

    https://developer.android.google.cn/guide/app-bundle/in-app-updates



Android Q 的用户隐私与安全


作为开发者社区,我们所有人都非常重视妥善处理用户的隐私与安全问题。这关系到在构建能够为开发者提供强大功能的平台的同时,确保用户的安全和隐私得到保护。几个月前,我们推出的 Android Q 测试版具备 50 多项功能以及围绕用户隐私与安全做出的改进。这些 Android Q 的变更可为用户提供更多的透明度和可控性。 


一如既往,我们正努力完成有助于开发者采用新版本的所有工作。我们知道您有自己想要构建的功能。这也正是为什么我们非常努力地将这些 Android Q 变更对您的影响降到最低,并将您的反馈纳入其中。我们提供尽可能长的通知期,并预先提供完整详尽的技术信息,以帮助开发者轻松采用新版本。我们还想感谢社区的持续反馈。这对努力试图妥善解决此问题的团队而言是非常巨大的帮助。一个非常典型的示例是第 3 个测试版的存储空间变更,您的反馈帮助我们在测试期间改进功能。长久以来,Android 致力于将所有重大变更对用户隐私和安全的影响降至最低。我们矢志不渝,并将努力让 Android 成为我们钟爱的灵活开放平台,方便开发者使用。


  • 第 3 个测试版的存储空间变更

    https://android-developers.googleblog.com/2019/04/android-q-scoped-storage-best-practices.html



参与 Google I/O!


我们准备了许多精彩内容,包括超过 45 场的跨 Android 领域会议。非常高兴您关注本次的 Google I/O 2019,通过直播在线收看大会,或参与 GDG 社区 I/O 延展活动。我们还会不断加大投入,不断完善这一将开发者与全世界数十亿用户紧密相连的平台。感谢您对整个 Android 社区的持续支持和反馈!


  • 45 场的跨 Android 领域会议

    https://events.google.com/io/schedule/events/?2=topic_androidplay



推荐阅读


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存